home *** CD-ROM | disk | FTP | other *** search
- {$g+} { see end of document for more .. }
- uses
- crt,gru; { GRU in GRAPHICS.SWG }
- const
- add1=1;
- add2=-1;
- add3=-1;
- var
- ptab,ctab:array[0..199] of byte;
- stab1,stab2,stab3:array[0..255] of byte;
- i,i1,i2,i3:word;
- workp:pointer;
- work:word;
- timer:longint absolute $0040:$006c;
- frame,t1,t2:longint;
-
- procedure virtup;
- begin
- getmem(workp,64000);
- work:=seg(workp^);
- end;
-
- procedure virtdn;
- begin
- work:=0;
- freemem(workp,64000);
- end;
-
- procedure init;
- begin
- virtup;
- frame:=0;
- for i:=0 to 255 do begin
- stab1[i]:=round(sin(i*2*pi/255)*50)+160;
- stab2[i]:=round(cos(i*4*pi/255)*25);
- stab3[i]:=round(sin(i*4*pi/255)*25);
- end;
- fillchar(ctab,sizeof(ctab),0);
- i1:=0; i2:=25; i3:=100;
- end;
-
- procedure waves;
- var x,y:word;
- begin
- t1:=timer;
- repeat
- move(ctab,ptab,sizeof(ctab));
- for i:=0 to 199 do
- begin
- ctab[i]:=stab1[(i+i1) mod 255]+stab2[(i+i2) mod 255]+stab3[(i+i3) mod 255];
- hline2(0,ctab[i],i,work,ctab[i]-59);
- hline2(ctab[i],320,i,work,not (ctab[i]-15));
- end;
- i1:=(i1+add1) mod 255; i2:=(i2+add2) mod 255; i3:=(i3+add3) mod 255;
- flip386(work,vidseg);
- inc(frame);
- until(keypressed)and(readkey=#27);
- t2:=(timer-t1);
- end;
-
- procedure main;
- begin
- init;
- setmode($13);
- for i:=1 to 199 do setpal(i,i div 4,20+i div 5,10+i div 6);
- waves;
- setmode($03);
- writeln(round((frame*18.2)/t2),' fps.');
- virtdn;
- end;
-
- begin
- main;
- end.
-
- {--------------------------- SIN2 -------------------- }
-
- {$g+}
- uses
- crt,gru;
- const
- add1=1;
- add2=-1;
- add3=-1;
- var
- ptab,ctab:array[0..319] of byte;
- stab1,stab2,stab3:array[0..255] of byte;
- i,i1,i2,i3:word;
- workp:pointer;
- work:word;
- timer:longint absolute $0040:$006c;
- frame,t1,t2:longint;
-
- procedure virtup;
- begin
- getmem(workp,64000);
- work:=seg(workp^);
- end;
-
- procedure virtdn;
- begin
- work:=0;
- freemem(workp,64000);
- end;
-
- procedure init;
- begin
- virtup;
- frame:=0;
- for i:=0 to 255 do
- begin
- stab1[i]:=round(sin(i*2*pi/255)*50)+109;
- stab2[i]:=round(cos(i*4*pi/255)*25);
- stab3[i]:=round(sin(i*4*pi/255)*25);
- end;
- fillchar(ctab,sizeof(ctab),0);
- i1:=0; i2:=25; i3:=100;
- end;
-
- procedure waves;
- var x,y:word;
- begin
- t1:=timer;
- repeat
- move(ctab,ptab,sizeof(ctab));
- for i:=0 to 319 do
- begin
- ctab[i]:=stab1[(i+i1) mod 255]+stab2[(i+i2) mod 255]+stab3[(i+i3) mod 255];
- vline2(i,0,ctab[i],work,ctab[i]);
- vline2(i,ctab[i],200,work,not (ctab[i]+40));
- end;
- i1:=(i1+add1) mod 255; i2:=(i2+add2) mod 255; i3:=(i3+add3) mod 255;
- flip386(work,vidseg);
- inc(frame);
- until(keypressed)and(readkey=#27);
- t2:=(timer-t1);
- end;
-
- procedure main;
- begin
- init;
- setmode($13);
- for i:=1 to 199 do setpal(i,i div 4,20+i div 5,10+i div 6);
- waves;
- setmode($03);
- writeln('SiNUS iNTRO ][ CODED BY Z00NE/MARCHERSOFT');
- writeln(round((frame*18.2)/t2),' fps.');
- virtdn;
- end;
-
- begin
- main;
- end.
-
- { ------------------ SIN3 ---------------------- }
-
- {$g+}
- uses
- crt,gru;
- const
- add1=1;
- add2=-1;
- add3=-1;
- var
- ptab,ctab:array[0..319] of byte;
- stab1,stab2,stab3:array[0..255] of byte;
- i,i1,i2,i3:word;
- workp:pointer;
- work:word;
- timer:longint absolute $0040:$006c;
- frame,t1,t2:longint;
-
- procedure virtup;
- begin
- getmem(workp,64000);
- work:=seg(workp^);
- end;
-
- procedure virtdn;
- begin
- work:=0;
- freemem(workp,64000);
- end;
-
- procedure init;
- begin
- virtup;
- frame:=0;
- for i:=0 to 255 do begin
- stab1[i]:=round(sin(i*2*pi/255)*50)+109;
- stab2[i]:=round(cos(i*4*pi/255)*25);
- stab3[i]:=round(sin(i*4*pi/255)*25);
- end;
- fillchar(ctab,sizeof(ctab),0);
- i1:=0; i2:=25; i3:=100;
- end;
-
- procedure waves;
- var x,y:word;
- begin
- t1:=timer;
- repeat
- move(ctab,ptab,sizeof(ctab));
- for i:=0 to 319 do
- begin
- ctab[i]:=stab1[(i+i1) mod 255]+stab2[(i+i2) mod 255]+stab3[(i+i3) mod 255];
- vline2(i,0,ctab[i],work,ctab[i]);
- vline2(i,ctab[i],200,work,not (ctab[i]+40));
- smooth1(i-1,ctab[i]-1,work);
- smooth1(i-1,ctab[i],work);
- smooth1(i-1,ctab[i]-1,work);
- smooth1(i+1,ctab[i]+1,work);
- smooth1(i+1,ctab[i],work);
- smooth1(i,ctab[i]+1,work);
- smooth1(i-1,ctab[i]+1,work);
- smooth1(i+1,ctab[i]-1,work);
- smooth1(i,ctab[i],work);
- end;
- i1:=(i1+add1) mod 255; i2:=(i2+add2) mod 255; i3:=(i3+add3) mod 255;
- flip386(work,vidseg);
- inc(frame);
- until(keypressed)and(readkey=#27);
- t2:=(timer-t1);
- end;
-
- procedure main;
- begin
- init;
- setmode($13);
- for i:=1 to 199 do setpal(i,i div 4,20+i div 5,10+i div 6);
- waves;
- setmode($03);
- writeln('SiNUS iNTRO ]I[ CODED BY Z00NE/MARCHERSOFT');
- writeln(round((frame*18.2)/t2),' fps.');
- virtdn;
- end;
-
- begin
- main;
- end.
-
- { ------------------------ SIN 4 -------------------- }
- {$g+,r-,x-,o-,s-,q-,d-,l-,y-,a+,e-,n-,p-,t-,v-,y-}
- uses
- crt,gru;
- const
- add1=1;
- add2=-1;
- add3=-1;
- sofs=75;
- samp=75;
- slen=255;
- sprpic:array[0..15,0..15]of byte=(
- (0,0,0,0,0,0,1,1,1,1,0,0,0,0,0,0),
- (0,0,0,0,1,1,1,1,1,1,1,1,0,0,0,0),
- (0,0,0,1,1,1,1,1,1,1,1,1,1,0,0,0),
- (0,0,1,1,1,1,1,2,2,1,1,1,1,1,0,0),
- (0,1,1,1,1,1,2,2,2,2,1,1,1,1,1,0),
- (0,1,1,1,1,2,2,3,3,2,2,1,1,1,1,0),
- (1,1,1,1,2,2,3,3,3,3,2,2,1,1,1,1),
- (1,1,1,1,2,2,3,4,4,3,2,2,1,1,1,1),
- (1,1,1,1,2,2,3,3,3,3,2,2,1,1,1,1),
- (0,1,1,1,1,2,2,3,3,2,2,1,1,1,1,0),
- (0,1,1,1,1,1,2,2,2,2,1,1,1,1,1,0),
- (0,0,1,1,1,1,1,2,2,1,1,1,1,1,0,0),
- (0,0,1,1,1,1,1,1,1,1,1,1,1,1,0,0),
- (0,0,0,1,1,1,1,1,1,1,1,1,1,0,0,0),
- (0,0,0,0,1,1,1,1,1,1,1,1,0,0,0,0),
- (0,0,0,0,0,0,1,1,1,1,0,0,0,0,0,0));
- type
- sinarray=array[0..slen]of word;
- var
- stab:sinarray; { Used to move shade bob. }
- ptab,ctab:array[0..319] of byte;
- stab1,stab2,stab3:array[0..255] of byte;
- i,i1,i2,i3:word;
- workp:pointer;
- work:word;
- timer:longint absolute $0040:$006c;
- frame,t1,t2:longint;
-
- procedure virtup;
- begin
- getmem(workp,64000);
- work:=seg(workp^);
- end;
-
- procedure virtdn;
- begin
- work:=0;
- freemem(workp,64000);
- end;
-
- procedure init;
- begin
- virtup;
- for i:=0 to slen do stab[i]:=round(sin(i*4*pi/slen)*samp)+sofs;
- for i:=0 to 255 do
- begin
- stab1[i]:=round(sin(i*2*pi/255)*50)+109;
- stab2[i]:=round(cos(i*4*pi/255)*25);
- stab3[i]:=round(sin(i*4*pi/255)*25);
- end;
- fillchar(ctab,sizeof(ctab),0);
- i1:=0; i2:=25; i3:=100;
- end;
-
- procedure waves;
- var
- c,x,y:word;
- i,j:byte;
- begin
- t1:=timer;
- i:=0;
- j:=25;
- c:=0;
- clear386(work,0);
- repeat
- if(c>4)then
- begin
- c:=0;
- smooth(work);
- line2(160,100,x,y,work,i);
- end;
- x:=2*stab[i];
- y:=stab[j];
- inc(i);
- inc(j);
- drawsprite(x,y,work,16,16,0,sprpic);
- line2(0,0,319,0,work,0);
- line2(0,0,0,199,work,0);
- line2(0,199,319,199,work,0);
- line2(319,199,319,0,work,0);
- flip386(work,vidseg);
- inc(c);
- until(keypressed);
- t2:=(timer-t1);
- end;
-
- procedure main;
- begin
- init;
- setmode($13);
- for i:=1 to 199 do setpal(i,i div 4,20+i div 5,10+i div 6);
- waves;
- setmode($03);
- writeln('SiNUS iNTRO iV CODED BY Z00NE/MARCHERSOFT');
- writeln(round((frame*18.2)/t2),' fps.');
- virtdn;
- end;
-
- begin
- main;
- end.
-
- { ---------------------------- SIN 5 ---------------------- }
- {$g+}
- uses
- crt,gru;
- const
- add1=1;
- add2=-1;
- add3=-1;
- var
- ptab,ctab:array[0..319] of byte;
- stab1,stab2,stab3:array[0..255] of byte;
- i,i1,i2,i3:word;
- workp:pointer;
- work:word;
- timer:longint absolute $0040:$006c;
- frame,t1,t2:longint;
-
- procedure virtup;
- begin
- getmem(workp,64000);
- work:=seg(workp^);
- end;
-
- procedure virtdn;
- begin
- work:=0;
- freemem(workp,64000);
- end;
-
- procedure init;
- begin
- virtup;
- frame:=0;
- for i:=0 to 255 do
- begin
- stab1[i]:=round(sin(i*2*pi/255)*50)+109;
- stab2[i]:=round(cos(i*4*pi/255)*25);
- stab3[i]:=round(sin(i*4*pi/255)*25);
- end;
- fillchar(ctab,sizeof(ctab),0);
- i1:=0; i2:=25; i3:=100;
- end;
-
- procedure waves;
- var x,y:word;
- begin
- t1:=timer;
- repeat
- move(ctab,ptab,sizeof(ctab));
- for i:=0 to 319 do
- begin
- ctab[i]:=stab1[(i+i1) mod 255]+stab2[(i+i2) mod 255]+stab3[(i+i3) mod 255];
- vline2(i,0,200,work,ctab[i]);
- vline2(i,ctab[i]-5,ctab[i]+5,work,not(ctab[i]+40));
- end;
- i1:=(i1+add1) mod 255; i2:=(i2+add2) mod 255; i3:=(i3+add3) mod 255;
- flip386(work,vidseg);
- inc(frame);
- until(keypressed)and(readkey=#27);
- t2:=(timer-t1);
- end;
-
- procedure main;
- begin
- init;
- setmode($13);
- for i:=1 to 199 do setpal(i,i div 4,20+i div 5,10+i div 6);
- waves;
- setmode($03);
- writeln('SiNUS iNTRO V CODED BY Z00NE/MARCHERSOFT');
- writeln(round((frame*18.2)/t2),' fps.');
- virtdn;
- end;
-
- begin
- main;
- end.
- { --------------------- SIN 6 --------------------- }
-
-
- {$g+,d-,l-,y-,n-,e-,r-,s-,q-,t-,v-,x-}
- uses gru;
- const
- add1=1;
- add2=-1;
- add3=-1;
- var
- ptab,ctab:array[0..199] of byte;
- stab1,stab2,stab3:array[0..255] of byte;
- i,i1,i2,i3:word;
- workp:pointer;
- work:word;
- timer:longint absolute $0040:$006c;
- frame,t1,t2:longint;
-
- function readkey:char; assembler;
- asm
- xor ah,ah
- int 16h
- end;
-
- function keypressed:boolean; assembler;
- asm
- mov ah, 01h
- int 16h
- mov ax, 00h
- jz @1
- inc ax
- @1:
- end;
-
- procedure virtup;
- begin
- getmem(workp,64000);
- work:=seg(workp^);
- end;
-
- procedure virtdn;
- begin
- work:=0;
- freemem(workp,64000);
- end;
-
- procedure init;
- begin
- virtup;
- frame:=0;
- for i:=0 to 255 do begin
- stab1[i]:=round(sin(i*2*pi/255)*50)+160;
- stab2[i]:=round(cos(i*4*pi/255)*25);
- stab3[i]:=round(sin(i*4*pi/255)*25);
- end;
- fillchar(ctab,sizeof(ctab),0);
- i1:=0; i2:=25; i3:=100;
- end;
-
- procedure waves;
- var x,y:word;
- begin
- t1:=timer;
- repeat
- move(ctab,ptab,sizeof(ctab));
- for i:=0 to 44 do
- begin
- ctab[i]:=stab1[(i+i1) mod 255]+stab2[(i+i2) mod 255]+stab3[(i+i3) mod 255];
- hline2(0,ctab[i],i,work,ctab[i]-59);
- hline2(ctab[i],320,i,work,not (ctab[i]-15));
- end;
- i1:=(i1+add1) mod 255; i2:=(i2+add2) mod 255; i3:=(i3+add3) mod 255;
- for i:=0 to 2 do
- smooth2(work,320*44);
- flip386(work,vidseg);
- inc(frame);
- until(keypressed)and(readkey=#27);
- t2:=(timer-t1);
- end;
-
- procedure main;
- begin
- init;
- setmode($13);
- scanlines(8);
- for i:=1 to 199 do setpal(i,i div 4,20+i div 5,10+i div 6);
- waves;
- setmode($03);
- writeln(round((frame*18.2)/t2),' fps.');
- virtdn;
- end;
-
- begin
- main;
- end.